To prevent the compromise of sensitive information (credit card numbers, social security numbers, etc.), industry standards and security/privacy laws often mandate the use of encryption. Such standards and laws include the Health Insurance Portability and Accountability Act of 1996 (HIPAA), the Database Breach Notification Act (CA SB 1386), the Payment Card Industry Data Security Standard, and others.
Encryption is the process of translating data (clear text) into a form that is not interpretable (cipher text) should the data be compromised. This translation is done using strong cryptographic algorithms in conjunction with secret keys. The correct secret key is required to reverse the translation such that the original data can be interpreted. To ensure the security of the process, the strong cryptographic algorithms employ advanced mathematical techniques that tend to be very processing intensive.
Typical data warehouse applications involve running queries against very large data sets. Consequently, compression is a useful technique for minimizing table storage space. Compression reduces storage costs by storing more logical data per unit of physical capacity producing smaller rows resulting in an increased number rows stored in each data block. This ultimately requires fewer data blocks to store a table. Compression also improves system performance by reducing the amount of disk I/O required to retrieve the rows of a table.
Due to use of block encryption algorithms, initialization vectors, and other cryptographic techniques, the size of a column containing cipher text can be significantly larger than that of its original clear text value. Similarly, since values to be compressed are specified using clear text values, the corresponding cipher text is not compressed. This can result in significant increases in table sizes when encrypting one or more columns.